import Serializer=require('./../../../base/Serializer');
import LineStyle=require('./LineStyle');

export = BorderStyle;

/**
 * 对象边框的属性，例如： Table单元格 上/下/左/右/对角线 边框的颜色样式
 * @author 
 *
 */
class BorderStyle extends Serializer {
    /**
     * visible, 是否显示,0不显示，1显示
     */
    public v: number=1;
    
    public top: LineStyle = new LineStyle(); // 上边框
    public bottom: LineStyle=new LineStyle(); // 下边框
    public left: LineStyle=new LineStyle(); // 左边框
    public right: LineStyle=new LineStyle(); // 右边框
    
    //public diag: LineStyle=new LineStyle(); // 对角线(\)
    //public back_diag: LineStyle=new LineStyle(); // 反对角线(/)
    
    public constructor(g?) {
        super(g);
    }
    
    // 从json对象(注意不是json字符串)中解析
    // 参数：self,true表示只拷贝自身数据，而不拷贝子的数据
    public fromJson(jsonObj,versionId,self?) {
        super.fromJson(jsonObj,versionId,self);
        
        this.v=jsonObj.v;

        if(jsonObj.top!=null) {
            this.top.fromJson(jsonObj.top,versionId);
        }
        if(jsonObj.bottom!=null) {
            this.bottom.fromJson(jsonObj.bottom,versionId);
        }
        if(jsonObj.left!=null) {
            this.left.fromJson(jsonObj.left,versionId);
        }
        if(jsonObj.right!=null) {
            this.right.fromJson(jsonObj.right,versionId);
        }
    }
    
    // 转成json字符串
    public toJson(): string {
        // 去掉父json字符串的头尾
        var superJson=super.toJson();
        superJson=superJson.substr(1,superJson.length-2);

        var ret='{';
        ret+=superJson;
        
        // v
        ret+=',';
        ret+='"v":';
        ret+=this.v;   

        // top
        if(this.top) {
            ret+=',';
            ret+='"top":';
            ret+=this.top.toJson();
        }
        // bottom
        if(this.bottom) {
            ret+=',';
            ret+='"bottom":';
            ret+=this.bottom.toJson();
        }
        // left
        if(this.left) {
            ret+=',';
            ret+='"left":';
            ret+=this.left.toJson();
        }
        // right
        if(this.right) {
            ret+=',';
            ret+='"right":';
            ret+=this.right.toJson();
        }
        
        ret+='}';
        return ret;
    }
}//SJG_MARK_END-------------------------
